在開始聊後端相關的知識前,要先來聊聊後端的 scope,也就是
參考一份蠻有名的後端 Roadmap 為例:
後端的 scope 包含:
1. 基礎網路知識
基本的網路知識: DNS、http、https、TCP/IP 和 OSI 七層等。
API 開發:設計和開發 API(應用程式介面),這些 API 用來與前端溝通,接收前端的請求並返回相應的資料或結果。
常見 API 格式包括:
REST API(基於 HTTP 協議)
GraphQL API(更加靈活的查詢方式)
資料處理與邏輯運算:後端負責處理業務邏輯,如商業邏輯計算等。
2. 框架與工具
使用各種框架和工具來加快開發速度和維護程式碼的品質。常見的後端框架包括:
程式框架:
Python:Django、Flask、Fastapi
JavaScript:Node.js(Express)
Java:Spring Boot
Ruby:Ruby on Rails
PHP:Laravel
版控: Git、Svn 和 Mercurial等。
基礎的 OS 知識: 檔案系統、進程與執行緒的管理、記憶體管理和 log 日誌管理等。
Workflow 自動化、Pipeline 和任務排程。如 Airflow、Dagster等。
Message Queue:解耦和提升系統可擴展性。如 RabbiMQ、Kafka、MQTT。
3. 資料庫系統
設計、管理和操作資料庫(CRUD),瞭解 ACID 準則,索引、分區等資料庫優化、備份資料庫和使用框架的 ORM 等。
資料庫類型:
4. 伺服器設定與部署
執行伺服器的設定與應用程式的部署,包括選擇運行環境、監控服務狀況及維護系統的可擴展性與安全性。
雲端平台:使用如 AWS、Google Cloud、Azure 等來進行應用程式的部署和伺服器管理。
容器化技術:使用 Docker 等容器技術來打包應用,使應用程式更易於部署和擴展。
自動化工具:使用工具如 Ansible、Jenkins、GitHub Actions 和 Kubernetes等,以進行自動化測試和部署。
5. 安全性與授權
系統的安全問題,防止資料外洩、攻擊或非法操作。
身份認證與授權:
使用如 JWT(JSON Web Token)、OAuth 來管理使用者身份驗證,確保使用者合法地存取系統。
資料加密:敏感資料(如密碼、信用卡資訊)需經過加密處理,會實施加密技術,如 SSL、TLS。
防範資安問題:後端必須防範各類攻擊,如 SQL injection、XSS(cross-site scripting) 攻擊等。
6. 性能優化
確保系統具備高性能,能在高流量和大量請求下運行流暢。
Cache:使用 Redis、Memcached 等 Cache 技術來減少資料庫的壓力或節省資源。
負載平衡:當有多個伺服器運行時,透過負載平衡技術如 Nginx、HAProxy 來分配流量,提升可用性。
資料庫優化:使用索引、資料庫分區技術來提升查詢速度。
7. 系統設計
經驗更為豐富之後,可能就會遇到系統設計,當對各個相關技術都有一定的認識後,就能較好的根據需求做出更好的技術選型,使設計的系統具有較高的穩定性和容錯性。
Reference: